Certain types of semiconductor memories store information therein by creating a change in the resistance value of a memory cell. Flash memories and spin-transfer torque MRAMs (magnetoresistive random access memories) are examples of such types of semiconductor memories. Data reading is performed by causing read currents to flow through a memory cell and a reference cell, respectively, to compare a voltage drop across the memory cell with a voltage drop across the reference cell, thereby detecting whether the data of the memory cell is “0” or “1”.
The resistance value of a reference cell is ideally set equal to a midpoint resistance value between the high resistance value of a memory cell corresponding to one of “0” and “1” and the low resistance value of a memory cell corresponding to the other one of “0” and “1”. Product variation may cause the resistance value of a reference cell to deviate from the midpoint resistance value to come close to either the high resistance value or the low resistance value of a memory cell, resulting in a narrow read margin. The narrow read margin entails a lengthy time for comparison and detection of voltage drops and a failure to detect correct data in some cases.
[Patent Document 1] Japanese Laid-open Patent Publication No. 2003-203474
[Patent Document 2] Japanese Laid-open Patent Publication No. 2004-20325
[Patent Document 3] Japanese Laid-open Patent Publication No. 2004-62922